@echo off
setlocal

:: 检查是否提供了文件名参数
if "%~1"=="" (
    echo Usage: %0 filename
    exit /b
)

:: 设置编译器路径
set COMPILER=C:/DEV/mingw64/bin/g++.exe

:: 检查文件名是否包含.cpp后缀，如果不包含，则添加
set FILENAME=%~1
if not "%FILENAME%.cpp" == "%FILENAME%" set FILENAME=%FILENAME%.cpp

:: 检查文件是否存在
if not exist "%FILENAME%" (
    echo File "%FILENAME%" not found.
    exit /b
)

:: 设置可执行文件名
set EXECUTABLE=%~n1.exe

:: 编译文件
%COMPILER% -o %EXECUTABLE% %FILENAME%
if errorlevel 1 (
    echo Compilation failed.
    exit /b
)

:: 运行生成的可执行文件，并重定向输入输出
%EXECUTABLE% < ./test/in > ./test/out

:: 删除生成的可执行文件
del %EXECUTABLE%

echo Process completed.
endlocal